Elm and Functional Programming with Evan Czaplicki and Richard Feldman
Evan Czaplicki, creator of Elm, and Richard Feldman of NoRedInk joined the show to talk deeper about Elm, the pains of CSS it solves, scaling the Elm architecture, reusable components, and more.
Matched from the episode's transcript 👇
Evan Czaplicki: I’d say this is similar to how we learn a lot of things in Elm. We just observed over time, “Oh, this is how it works,” and then just share that as we learn. So this was definitely a case where whenever I talked to people that have a success story on Elm, it was, “We tried this little corner of our project, and that was nice. And then we started to grow that, and grow that, and grow that.” Or, “We have this little page over here, and we thought we’d give it a try.”
[56:10] I don’t know of any full rewrite or greenfield… I guess there’s some consultants who are able to do that, but typically when people are doing that, they already have built the expertise through this gradual process on other hobby projects or smaller projects that already exist.
So I think there’s this idea—I’m not sure where it comes from, maybe Richard will know better — but that it’s all Elm or no Elm. It’s always been true that the way of interacting with JavaScript has let you drop it in in this way. A big goal of “How to Use Elm at Work” was really just to tell people, “Hey, I know this used to come really late in our documentation, but check it out. This is how you embed it, and this is how you use it gradually.” We had made an almost necessary presentation error. Talking to JavaScript happens through this idea of ports — so essentially you can send messages into Elm and send messages out to JavaScript, and all the communication happens through that. And pre-0.17, that needed signals, so essentially you needed a big conceptual framework to be able to use that. With 0.17 it became way, way easier to do that all within your Elm code. It still was at the end of the documentation, though. We really wanted to have a way for people to know that approach, and also have it be possible to present it very, very early on in the learning process.